from tornado import web, ioloop
class indexHandler(web.RequestHandler):
    def get(self):
        # 通过 self.request 接受客户端传来的参数
        # 这里的 request对象是由httputil下的 ‘httpserverrequest’ 提供的
        # print(self.request.body)        #   请求体
        # print(self.request.cookies)     #   接到的cookie
        # print(self.request.files)       #   客户端文件上传，接受到的文件
        # print(self.request.host)        #   请求的地址
        # print(self.request.headers)     #   请求头
        # print(self.request.method)      #   方法类型
        # print(self.request.remote_ip)   #   客户端ip地址
        # print(self.request.version)     #   协议的版本，比如 HTTP 1.1
        # print(self.request.uri)         #   路由地址

        # query类型的参数接受
        print(self.request.query) # 返回原始的query字符串
        print(self.get_query_argument(name='name')) # 获取单个，如果传过来了多个，那就只接受传过来的最后一个
        print(self.get_query_arguments(name='name')) #    根据key获取 参数，以列表格式返回（可以返回多个）

        self.write('am coming!---000!')

    def post(self):
        # 使用post请求
        # 接受请求体数据
        print(self.get_body_argument('name')) # 从请求体中 获取单个数据
        print(self.get_body_arguments('name')) # 获取多个，列表格式
class homeHandler(web.RequestHandler):
    def get(self, mobile):
        print('mobile',mobile)
class unameHandler(web.RequestHandler):
    def get(self, uname):
        print('uname',uname)
class webApplication(web.Application):
    def __init__(self, urlPatterns, *args, **kwargs):
        kwargs['handlers'] = urlPatterns
        super().__init__( *args, **kwargs)

if __name__ == '__main__':
    app = webApplication([
        (r"/", indexHandler),
        # 路由传参，使用正则表达式进行占位。可以接受路由中的参数
        (r"/home/(.+)", homeHandler),
        # 具名 路由传参，指定路由参数的名字进行传参，接受的时候需要用对应的名字。
        (r"/edit/(?P<uname>.+)", unameHandler)
    ],debug=True)
    app.listen(8999)
    ioloop.IOLoop.current().start()
